package com.ruoyi.ly.service;

import java.util.List;
import com.ruoyi.ly.domain.ServeExaminePlan;
import com.ruoyi.ly.domain.dto.PageServeUserDTO;
import com.ruoyi.ly.domain.vo.ServeFlowAPPVO;
import com.ruoyi.ly.domain.vo.ServePlanAPPVO;
import com.ruoyi.ly.utils.PageResult;
import org.apache.ibatis.annotations.Param;

/**
 * 巡检计划Service接口
 * 
 * @author wj
 * @date 2024-01-13
 */
public interface IServeExaminePlanService 
{
    /**
     * 查询巡检计划
     * 
     * @param examinePlanId 巡检计划主键
     * @return 巡检计划
     */
    public ServeExaminePlan selectServeExaminePlanByExaminePlanId(Long examinePlanId);

    /**
     * 查询巡检计划列表
     * 
     * @param serveExaminePlan 巡检计划
     * @return 巡检计划集合
     */
    public List<ServeExaminePlan> selectServeExaminePlanList(ServeExaminePlan serveExaminePlan);

    /**
     * 新增巡检计划
     * 
     * @param serveExaminePlan 巡检计划
     * @return 结果
     */
    public int insertServeExaminePlan(ServeExaminePlan serveExaminePlan);

    /**
     * 修改巡检计划
     * 
     * @param serveExaminePlan 巡检计划
     * @return 结果
     */
    public int updateServeExaminePlan(ServeExaminePlan serveExaminePlan);

    /**
     * 批量删除巡检计划
     * 
     * @param examinePlanIds 需要删除的巡检计划主键集合
     * @return 结果
     */
    public int deleteServeExaminePlanByExaminePlanIds(Long[] examinePlanIds);

    /**
     * 删除巡检计划信息
     * 
     * @param examinePlanId 巡检计划主键
     * @return 结果
     */
    public int deleteServeExaminePlanByExaminePlanId(Long examinePlanId);

    //分页查询管理员
    PageResult pageQuery(PageServeUserDTO pageServeUserDTO);

    //根据openId显示对应的巡检信息(小程序端)
    List<ServePlanAPPVO> selectByOpenId(@Param("openId") String openId, @Param("examineCateType") String examineCateType);

    //根据巡检计划id显示对应的巡检计划信息(小程序端)   keyId 用于区分待巡检和已巡检
    List<ServeFlowAPPVO> selectByPlanId(@Param("examinePlanId")Long examinePlanId, @Param("keyId")Long keyId);

    //修改对应巡检人
    void update(@Param("name")String name,@Param("examinePlanId")Long examinePlanId);
}
